package project02.cool;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import project02.model.UserInfo;

public class AuthFilter implements Filter {

    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {

        String thisURL = ((HttpServletRequest) request).getRequestURI();
        HttpSession session = ((HttpServletRequest)request).getSession();
        UserInfo userInfo = (UserInfo) session.getAttribute("userInfo");

        if (userInfo == null) {
                // 除外したURLのアクセスの場合、ログイン画面にリダイレクトする
                ((HttpServletResponse) response).sendRedirect("/login/");
                session.setAttribute("target", thisURL);
                return;
        }
        chain.doFilter(request, response);

    }


    @Override
    public void init(FilterConfig config) throws ServletException {
    }
}
